@kronos-integration/interceptor
intercepects / modifies requests as they pass between endpoints
const { Interceptor } from '@kronos-integration/interceptor';
const endpoint = { get name() { return 'aName'; }, receive() {}};
const interceptor = new Interceptor();
const response = interceptor.receive(endpoint, arg1, arg2);
API
Table of Contents
Endpoint
Type: Object
Interceptor
Base interceptor. The base class for all the interceptors
Calls configure() and reset().
Parameters
config
Object The interceptor configuration object.
type
The instance method returning the type.
Defaults to the constructors name (class name)
Returns string
configurationAttributes
Meta description of the configuration.
Returns Object
configure
Takes attribute values from config parameters
and copies them over to the object.
Copying is done according to configurationAttributes.
Which means we loop over all configuration attributes
and then for each attribute decide if we use the default, call
a setter function or simply assign the attribute value.
Parameters
toJSONWithOptions
Deliver the json representation.
Parameters
Returns Object json representation
reset
Forget all accumulated information.
receive
The receive method. This method receives the request from the leading interceptor
and calls the trailing interceptor.
Parameters
Returns Promise<any>
configurationAttributes
Meta description of the configuration
Returns Object
LimitingInterceptor
Extends Interceptor
Limits the number of concurrent requests.
Requests can be delayed or rejected.
Sample config:
[
{ count: 20 },
{ count: 10, delay: 100 },
{ count: 5, delay: 10 }
]
1 - 4 : no delay
5 - 9 : 10ms delay
10 - 19 : 100ms delay
20 : reject
default is to reject when more than 10 requests are on the way
Parameters
name
Returns string 'request-limit'
LoggingInterceptor
Extends Interceptor
logs args and result
name
Returns string 'logging'
StatsCollectorInterceptor
Extends Interceptor
Interceptor to collect processing time, number of
processed and failed requests.
receive
Logs the time the requests takes
Parameters
name
Returns string 'collect-request-stats'
TemplateInterceptor
Extends Interceptor
Map params into requests.
name
Returns string 'template'
TimeoutInterceptor
Extends Interceptor
Rejects a request if it does not resolve in a given time.
Properties
name
Returns string 'timeout'
rejectUnlessResolvedWithin
Rejects promise when it is not resolved within given timeout.
Parameters
Returns Promise<any>
expand
Expands '{{exp}}' expressions.
Parameters
Returns any expanded value
install
With npm do:
npm install @kronos-integration/interceptor
license
BSD-2-Clause